package tech.aistar.design.proxy.dynamic;

import java.lang.reflect.Proxy;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2021/3/25 2:24 下午
 */
public class TestHandler {
    public static void main(String[] args) {
        //1. 创建目标对象
        IOrderDao orderDao = new OrderDaoImpl();

        //2. 创建Handler对象
        OrderDaoHandler handler = new OrderDaoHandler(orderDao);

        //通过反射技术动态创建代理对象...
        IOrderDao proxy = (IOrderDao) Proxy.newProxyInstance(orderDao.getClass().getClassLoader(),orderDao.getClass().getInterfaces(),handler);

        System.out.println(proxy.getClass());//class com.sun.proxy.$Proxy0

        //通过代理对象来访问方法
        proxy.add();

        int x = proxy.find(100);
        System.out.println(x);
    }
}
